Repository navigation
docs: align the comment standard across AGENTS.md and CLAUDE.md - #17
Merged
Merged
Conversation
Author
|
Gate 1 note — the two red checks are not this PR's.
It is fixed by #13, which is now 12/12 green. Once #13 is stacked and this branch is rebased, Gate 1 can be satisfied here. |
jdsika
force-pushed
the
integration/3.0
branch
from
November 11, 2026 18:05
d91b4b2 to
cef3a07
Compare
jdsika
force-pushed
the
feature/align-agent-comment-standard
branch
from
November 11, 2026 18:10
b1fec6d to
84efa8e
Compare
jdsika
force-pushed
the
integration/3.0
branch
from
November 11, 2026 18:42
cef3a07 to
17e264a
Compare
The two instruction files are byte-identical except for one line, and that line is a contradiction rather than a Claude-specific tweak. AGENTS.md asked for comments that explain invariants; CLAUDE.md banned them by default with a hard one-line cap and an explicit list of banned forms. Agents load one file or the other depending on the tool, so the same codebase was being written to two different standards, and neither copy said the other existed. This adopts the stricter rule in both, because it is the one written for this codebase and the one the recent code follows.
jdsika
force-pushed
the
feature/align-agent-comment-standard
branch
from
November 11, 2026 18:42
84efa8e to
707fb9b
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Adopt
CLAUDE.md's stricter comment standard inAGENTS.md, so the two agent instruction filesstop contradicting each other on the one line where they differ.
Why
AGENTS.mdandCLAUDE.mdare byte-identical apart from a single bullet, and that bullet is acontradiction rather than a Claude-specific tweak:
AGENTS.mdCLAUDE.mdAgents load one file or the other depending on which tool is driving — Copilot and Codex read
AGENTS.md, Claude Code readsCLAUDE.md— so the same codebase has been getting written to twodifferent standards, and neither copy mentions that the other exists. A reviewer quoting one at an
agent that loaded the other is a disagreement nobody can resolve from the repository.
The stricter rule wins because it is the one written for this codebase, it is specific enough to
act on without interpretation, and it is what the recent C code actually follows. "Explain
invariants, not syntax" is the same intent stated loosely enough that two readers reach opposite
conclusions about a four-line rationale comment.
This is cheap to get right and expensive to leave alone: a vague standard is exactly the kind of
thing that turns into a round of review nits on every pull request, which is precisely the cost
this batch of work is trying to remove.
How tested
pre-commit run --all-filesmake rebuild(required if.c/.hchanged — zero new warnings)make test-unit/make test-evalmake test-c(C sim logic)make test-notebooks(notebooks touched)make test-docker-smoke(dynamics, rewards, observations, or training loop touched)make -C tests/drive perf(hot paths touched)make testbefore marking ready (unit + eval + c + notebooks — does not includedocker-smoke or perf; those are the two boxes above)
Documentation-only: one bullet in one Markdown file. No code, config, notebook or workflow is
touched, so the suites above have nothing to exercise.
pre-commitran because it is what checkstrailing whitespace and end-of-file on Markdown:
Verified by diff that the two files are now identical except for the fork-only block, which is
fork-only content and must stay out of this commit.
New behaviour is covered by a new test / the fix has a test that fails without it:
Not applicable — prose.
Stack hygiene
forkctl check-commitpasses (--choreon a fork-only branch)integration/3.0The last check is the interesting one:
AGENTS.mdcarries the fork-only<!-- fork:begin -->block, so the file is shared with upstream and only the fork-only hunk is protected. This commit
changes a line well outside it, which is allowed and is the whole point.
Merge gate
explicitly accepted in the thread
forkctl mirror <slug> --sha HEADpasses, i.e. thecommit cherry-picks onto pure
upstream/3.0and its diff is upstream-cleanGate 3 result:
Upstream disposition
Emerge-Lab/PufferDriverequested now — needs a human to verify the finaltitle, body and diff first, and the body must carry the authorship disclosure from
.github/fork/PROCESS.md→ Agent authorshipcontradiction is upstream's, so this belongs there — but which of the two standards upstream
wants is their call, not ours, and §5 requires explicit human approval before we open an
upstream PR arguing for one.
chore(fork):change, Gate 3 exemptRisk / notes
The obvious bigger fix was attempted and rejected. Rather than keeping two copies in sync, the
better change is to make
CLAUDE.mda one-line@AGENTS.mdpointer. That is structurally blockedtoday, and it is worth recording why so nobody re-derives it:
CLAUDE.md's body makes the trailing context of the deletion hunk the<!-- fork:begin -->line. That line does not exist upstream, so the commit cannotcherry-pick onto pure
upstream/3.0— Gate 3 fails on a conflict, not on a policy check.the section above it is gone, and a feature commit may not edit that block.
A clean path exists but costs two coupled changes and weakens a guard: first a
chore(fork)commitdropping
CLAUDE.mdfromFORK_BLOCK_FILESand removing its fork block from the base commit, thenthe pointer commit, which would then cherry-pick cleanly. Judged not worth it — the saving is
roughly 800 tokens per Copilot CLI session, and Claude Code expands
@AGENTS.mdat session startanyway, so there is no context saving on that side at all. Left for a human to decide.
Until then, the standing risk is simply that the two files drift again. This PR resolves the one
place they had already drifted.